package com.itheima.myreflect2.Student.sreatmdemo;

import java.util.ArrayList;
import java.util.function.Predicate;

/**
 * @program: Myset
 * @description:
 * @author: xuejingjing
 * @create: 2021-06-13 00:01
 **/

//lambal表达式不理解。

public class Mystream3 {
    //stream<T> filter(perdicate predicate)：过滤
    //predicate接口中的方法 boolean test(T t):对给定的参数
    //进行判断，返回一个boolean值
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("张无忌");
        list.add("张三边");
        list.add("张接电话");
        list.add("经济的好坏");
        list.add("张电脑手机");
        list.add("大家都不");
        list.add("四百九十九");

        //先获取一个Stream流
        //filter方法获取流中的每一个数据
        //而test方法中的s,就依次表示流中的每一个数据，
        //我们只要在test方法中对s进行判断就可以额，
        //如果判断的结果为true,则当前的数据留下
        //如果判断的结果为false,则当前数据就不要。

        //method1(list);
        list.stream().filter(
                (String s)->{
                    boolean result = s.startsWith("张");
                    return result;
                }
        ).forEach(s -> System.out.println(s));
    }

    private static void method1(ArrayList<String> list) {
        list.stream().filter(
                new Predicate<String>() {
                    @Override
                    public boolean test(String s) {
                        boolean result = s.startsWith("张");
                        return result;
                    }
                }

        ).forEach(s -> System.out.println(s));
    }
}
